<template>
  <a-select :value="arrayValue" @change="onChange" mode="multiple" :placeholder="placeholder">
    <a-select-option v-for="(item, index) in options" :key="index" :value="item.value">
      {{ item.text || item.label }}
    </a-select-option>
  </a-select>
</template>

<script>
//option {label:,value:}
export default {
  name: 'JSelectMultiple',
  props: {
    placeholder: {
      type: String,
      default: '',
      required: false,
    },
    value: {
      type: String,
      required: false,
    },
    readOnly: {
      type: Boolean,
      required: false,
      default: false,
    },
    options: {
      type: Array,
      required: true,
    },
    triggerChange: {
      type: Boolean,
      required: false,
      default: false,
    },
  },
  data() {
    return {
      arrayValue: !this.value ? [] : this.value.split(','),
    }
  },
  watch: {
    value(val) {
      if (!val) {
        this.arrayValue = []
      } else {
        this.arrayValue = this.value.split(',')
      }
    },
  },
  methods: {
    onChange(selectedValue) {
      if (this.triggerChange) {
        this.$emit('change', selectedValue.join(','))
      } else {
        this.$emit('input', selectedValue.join(','))
      }
    },
  },
}
</script>
